System and method for visual display of e-mail filters

ABSTRACT

A system and machine-implemented method is provided for generating an e-mail filter including receiving an indication of a selection of a simple filter representing a filter criterion and a placement of the simple filter icon within a display area displaying a visual representation of a collection of e-mail filters corresponding to the user, receiving an indication of a selection of an action icon representing an action to be performed with respect to an e-mail message and a placement of the action icon within the filter display area with respect to the simple filter icon, the placement representing a connection of the action icon with the simple filter icon, generating an e-mail filter comprising one or more filter criteria including the filter criterion in response to receiving the indication of the placement of the action icon and assigning the action to the e-mail filter.

BACKGROUND

The subject disclosure generally relates to e-mail messages, and, inparticular, to managing e-mail filters.

Existing e-mail service providers offer users the capability oforganizing incoming e-mail within different e-mail folders or labelsusing incoming e-mail filters. Typically, for each e-mail folder orlabel, the user has to individually indicate one or more filter criteriato generate an e-mail filter to detect e-mail that is to be organizedwithin the e-mail folder. Furthermore, to view and modify existinge-mail filters, the user generally has to select each e-mail filterindividually.

Additionally, it may be difficult to confirm that an e-mail filter iscorrectly applied to e-mail messages. Thus, a more efficient manner ofcreating, viewing and managing e-mail filters may be desirable.

SUMMARY

The disclosed subject matter relates to a machine-implemented method forgenerating an e-mail filter using a filter visual display, the methodcomprising receiving an indication of a selection of a first simplefilter icon by a user, wherein the first simple filter icon represents afirst filter criterion. The method further comprising receiving anindication of a placement of the first simple filter icon within adisplay area, wherein the display area displays a filter visual displaycomprising a visual representation of a collection of e-mail filterscorresponding to the user. The method additionally comprising receivingan indication of a selection of a first action icon, wherein the firstaction icon represents a first action to be performed with respect to ane-mail message. The method further comprising receiving an indication ofa placement of the first action icon within the filter display area withrespect to the first simple filter icon, wherein the placement of thefirst action icon with respect to first simple filter icon represents aconnection of the first action icon with the first simple filter icon.Additionally, the method comprising generating a first e-mail filtercomprising one or more filter criteria including the first filtercriterion in response to receiving the indication of the placement ofthe first action icon and assigning the first action to the first e-mailfilter.

The disclosed subject matter also relates to a system for generating anddisplaying an e-mail filter using a filter visual display, the systemcomprising one or more processors and a machine-readable mediumcomprising instructions stored therein, which when executed by theprocessors, cause the processors to perform operations comprisingreceiving an indication of a selection of a simple filter icon by auser, wherein the simple filter icon represents a filter criterion andfurther includes a value assigned by the user. The operations furthercomprising receiving an indication of a placement of a filter iconwithin a display area displaying by a user, wherein the valuecorresponds to one of an e-mail message being filtered if it satisfiesthe one or more filter criteria and the e-mail message being filtered ifit fails the one or more filter criteria, the display area displaying afilter visual display comprising a visual representation of a collectionof e-mail filters corresponding to the user. The operations furthercomprising receiving an indication of a placement of an action iconwithin the display area, wherein the action icon represents an action tobe performed with respect to the e-mail message. The operationsadditionally comprising generating an e-mail filter based on the one ormore filter criteria and the value, in response to receiving theindication of the placement of the action icon. The operations furthercomprising assigning the action represented by the action icon to thee-mail filter and providing the e-mail filter to be displayed within thedisplay area, the displayed e-mail filter including the filter icon, avisual representation of the value, the action icon and a visualrepresentation of the connection between the filter icon and the actionicon.

The disclosed subject matter also relates to a machine-readable mediumcomprising instructions stored therein, which when executed by amachine, cause the machine to perform operations comprising receiving anindication of a selection of a simple filter icon by a user, wherein thesimple filter icon represents a filter criterion and further includes avalue assigned by the user, wherein the value defines the output of thesimple filter icon. The operations further comprising receiving anindication of a placement of the simple filter icon within a displayarea, the display area displaying a filter visual display comprising avisual representation of a collection of e-mail filters corresponding tothe user. The operations further comprising receiving an indication of aplacement of an action icon within the display area, wherein the actionicon represents an action to be performed with respect to the e-mailmessage. The operations further comprising generating an e-mail filterbased on at least the filter criterion and the value in response toreceiving the indication the placement of the action icon and assigningthe action to the e-mail filter, wherein the e-mail filter is displayedwithin the display area including the simple filter icon, a visualrepresentation of the value, the action icon, and a visualrepresentation of the connection between the simple filter icon and theaction icon.

It is understood that other configurations of the subject technologywill become readily apparent to those skilled in the art from thefollowing detailed description, wherein various configurations of thesubject technology are shown and described by way of illustration. Aswill be realized, the subject technology is capable of other anddifferent configurations and its several details are capable ofmodification in various other respects, all without departing from thescope of the subject technology. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of the subject technology are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of thesubject technology are set forth in the following figures.

FIG. 1 illustrates an example filter visual display illustratingincoming e-mail filters of a user of the system.

FIG. 2 illustrates a flow diagram of a process for creating a simplefilter icon.

FIG. 3 illustrates a flow diagram of a process for creating an actionicon.

FIG. 4 illustrates a flow diagram of a process for generating e-mailfilters according to user selections within a filter visual display.

FIG. 5 illustrates a flow diagram of a process for editing e-mailfilters being displayed within a filter visual display.

FIG. 6 conceptually illustrates an electronic system with which someimplementations of the subject technology are implemented.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description ofvarious configurations of the subject technology and is not intended torepresent the only configurations in which the subject technology may bepracticed. The appended drawings are incorporated herein and constitutea part of the detailed description. The detailed description includesspecific details for the purpose of providing a thorough understandingof the subject technology. However, it will be clear and apparent tothose skilled in the art that the subject technology is not limited tothe specific details set forth herein and may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagram form in order to avoid obscuringthe concepts of the subject technology.

E-mail filtering is the processing of e-mail to organize it according toa collection of specified filter criteria referred to as an “e-mailfilter”. E-mail filters may be applied to process incoming e-mailmessages and outgoing e-mail messages, as well as to search amongexisting e-mail messages. Users may create e-mail filters that thenautomatically filter e-mail messages according to the specified filtercriteria.

During the e-mail filtering process, e-mail messages are input andprocessed according to e-mail filters, and an action is performed as theoutput. Possible actions for incoming e-mail messages may includepassing the e-mail message through unchanged for delivery to the user'sinbox, assigning a label to the e-mail message, redirecting the e-mailmessage for delivery elsewhere (e.g., a different folder or a differente-mail address), and removing the e-mail message. When searching throughexisting e-mail messages, the action usually comprises returning thee-mail messages to the user. Additionally, the retrieved e-mail messagesmay be forwarded to different mailboxes or recipients or may even beremoved. Similar actions may be performed with respect to outgoinge-mail messages.

The subject disclosure provides a method and system for generating afilter visual display for the user, where the filter visual displayillustrates one or more e-mail filters generated by the user. The filtervisual display may include one or more simple filters placed in relationto one another (e.g., representing an AND or OR operation) andterminating in actions. As used herein, “simple filters” refer to asingle filter criterion or attribute applied to e-mail messages.

FIG. 1 illustrates an example filter visual display 100 illustratingincoming e-mail filters of a user of the system. As illustrated, theexemplary filter visual display 100 includes simple filter icons 102,104, 106, 108 and 110 and action icons 112, 114, 116, 118 and 120. Eache-mail filter within the filter visual display comprises one or moresimple filters, represented by simple filter icons (e.g., simple filtericons 102-110) connected to one another, and terminates in an action,represented by an action icon (e.g., action icons 112-120).

Simple filter icons may be created through a user specification (e.g.,text specification) of a filter criterion. For example, a user may beprovided with a graphical user interface and may specify a filtercriterion identifier (e.g., by selecting the filter criterion from alist displayed at the graphical user interface or by entering anidentifier of the filter criterion into a text entry box displayed atthe graphical user interface). The user may define the selected filtercriterion. The definition refers to a value assigned to a specificfilter criterion identifier to create the filter criterion. The systemthen receives a data set including the selected filter criterion. Thesystem then creates a simple filter icon (i.e., a visual representationof the selected filter criterion) and associates the simple filter iconwith the filter criterion specified within the data set. Filter criteriarepresented by simple filter icons may include recipient of the e-mailmessage (e.g., from:, on behalf of:), destination of the e-mail message(e.g., to:, cc:, bcc:), subject of the e-mail message, content of thee-mail message (e.g., e-mail messages containing a specific text stringor not containing specific text string), whether the e-mail message hasan attachment, or similar e-mail attributes. Alternatively, one or moresimple filter icons defining filter criterion may be pre-generated bythe system.

Additionally, action icons may be created through a user specification(e.g., a text specification) of an action. For example, a user may beprovided with a graphical user interface and may select an action (e.g.,by selecting the action from a list displayed at the graphical userinterface, or by entering an identifier of the action into a text entrybox displayed at the graphical user interface). The system then receivesa data set including the action specified by the user, creates an actionicon (i.e., a visual representation of the simple filter) and associatesthe action icon with the action specified within the data set.Alternatively, one or more action icons may be pre-generated by thesystem.

Each action icon may include one input and zero or one outputs to allowfor reusing the e-mail filters (e.g., performing a first action withrespect to a combination of one or more simple filters but continuing tocompare against other simple filters to create a second e-mail filterterminating in a second action). Actions represented by action icons mayinclude sending the e-mail message to the user's inbox or other folder,archiving the e-mail message, marking the e-mail message as read,applying a label to the e-mail message, forwarding the e-mail message toanother e-mail address, deleting the e-mail message, marking the e-mailmessage as important, not sending the e-mail message to the spam folder,not marking the e-mail message as important or other similar actionsperformable with respect to an e-mail message.

Simple filter icons may be placed with respect to other simple filtericons within the filter visual display to form an e-mail filter. An ANDoperation may be represented by placing two simple filter icons inseries (e.g., simple filter icons 102, 104 and 106 terminating in actionicon 120 as illustrated in FIG. 1). An OR operation may be representedby splitting an out put within the e-mail filter pipe (e.g., an outputfrom the incoming mail, a simple filter or action icon) into multiplesimple filter icons (e.g., simple filter icon 102, simple filter icon110 and combination of simple filter icons 102, 104 and 106 terminatingin action icon 120) by placing the simple filter icons in parallelwithin the e-mail filter. An e-mail filter includes one or more simplefilters and terminates in an action. An action may include an input suchthat an e-mail filter (a combination of simple filters) may be reused incombination with other simple filters to create a second e-mail filterterminating in a new action. Similarly, each simple filter may includean output for being linked to other simple filters or to an action. Eachsimple filter may include a value associated with the output (e.g., ayes or no) for processing the e-mail messages through the filters. Thefilter visual display 100 may further display the connections betweenthe simple filter icons 102-110 and action icons 112-120.

An indication of a value of the output of each simple filter icon mayfurther be displayed within the filter visual display 100. The valuedisplayed corresponds to one of filtering e-mail messages meeting thedefined filter criterion associated with the simple filter icon (e.g.,displayed as a “yes”) and filtering e-mail messages not satisfying thedefined filter criterion (e.g., displayed as a “no”). For example, whenthe user selects the simple filter icon 102 the user may assign a valueindicating that e-mail messages sent to the c_team should pass throughthe filter (e.g., a yes value) or that e-mail message sent to the c_teamshould be filtered (e.g., a no value).

The filter visual display 100 illustrates an exemplary visual display ofe-mail filters of a user of the system. The filter visual display 100assumes that no labels, including “inbox” are attached to an incomingmessage, represented by the “incoming” icon 130. The filter visualdisplay 100 displays e-mail filters representing actions for putting allmessages that are directed to the user, identified as “me”, (i.e. a yeson simple filter icon 110) or to c_team (i.e., a yes on simple filtericon 102) or that do not have any filters that apply to them (i.e., a noon simple filter icons 102, 104 and 106) in the inbox (i.e., a yes onaction icon 120). Additionally, the filter visual display 100 displaysan e-mail filter for marking all messages from the user, identified as“me” (i.e., a yes on simple filter icon 108) as read, and three separatee-mail filters for labeling messages with a label corresponding to theirmailing list (i.e., a yes on simple filter icon 102, a yes on simplefilter icon 104, and a yes on simple filter icon 106). E-mail messagesmay flow down multiple e-mail filters, unless they are filtered, so amessage may conceivably end up marked as read and marked with variouslabels.

As illustrated in filter visual display 100 of FIG. 1, simple filtericons represented by a simple filter are only created once by the userand may be reused in different filters (e.g., simple filter icons 102,104 and 106 are reused). Thus, the user is able to create simple filtersusing a textual specification and use the simple filter icon associatedwith the simple filter repeatedly to create additional e-mail filters.For example, the user may be presented with a listing of all existingsimple filters and upon selecting the desired simple filter may bepresented with a selectable simple filter icon. The user may then createan e-mail filter by dragging and placing the simple filter icons withinthe display area (e.g., canvas) displaying the filter visual display100.

Thus, the system enables the user to view what order e-mail filters areapplied in. Furthermore, the filter visual display 100 may provide theuser with additional interactive features. For example, a user maycreate additional e-mail filters while viewing the existing e-mailfilters. In one aspect, the user may drag one or more existing simplefilter icons and action icons into the filter visual display to createnew e-mail filters. The user may further create new simple filters iconsor action icons by textually specifying a new filter criteria or action.The system may then generate a simple filter icon or action iconassociated with the generated new simple filter or action.

Additionally, the user may use the filter visual display 100 for thepurpose of debugging. In one aspect, while the filter visual display 100is being displayed to the user, the user may select a particular e-mailmessage and all pipes (e-mail filters) that the selected e-mail messagewould flow through may be highlighted or otherwise visuallydistinguished. Thus, the user is able to spot any errors in the e-mailfiltering process easily by viewing all applicable e-mail filters andthe interaction between different filters (simple filter and e-mailfilters) and actions.

Still further, while the filter visual display 100 is displayed to theuser, the user may be able to visually edit one or more pipes (e-mailfilters) within the filter visual display 100 to add new simple filtersicons, new action icons, remove existing simple filter icons and actionicons or rearrange the connection between existing simple filter iconsand action icons (e.g., in response to debugging).

FIG. 2 illustrates a flow diagram of a process 200 for creating a simplefilter icon. In step 202, the system receives a textual specification ofa filter criterion (e.g., including a filter criterion identifier anddefinition) from a user of the system. For example, the user may bepresented with a graphical user interface for specifying the filtercriterion (e.g., upon the system receiving a selection from the userthat the user wishes to create a new simple filter icon or a systemdetermination that a new simple filter icon should be created). Thefilter criterion entered by the user may include a recipient of thee-mail message (e.g., from:, on behalf of:), a destination of the e-mailmessage (e.g., to:, cc:, bcc:), a subject of the e-mail message, contentof the e-mail message (e.g., e-mail messages containing a specific textstring or not containing specific text string), whether the e-mailmessage has an attachment, or similar e-mail attributes. In one aspect,the possible filter criterion identifiers are presented to the userwithin the graphical user interface and the user may select theappropriate filter criterion identifier (e.g., to:) and enter adefinition for the selection filter criterion identifier (e.g., arecipient for the filter criterion to:), thus specifying the filtercriterion.

In step 204, the system generates a simple filter icon (i.e., a visualrepresentation of the simple filter) for the specified filter criterion.The visual representation may comprise a box displaying text indicatingthe filter criterion including the filter criterion identifier anddefinition specified by the user (e.g., simple filter icon 108). In step206, the system associates the simple filter icon with the filtercriterion specified by the user. The generated simple filter icon may bestored within a database along with the associated defined filtercriterion for later retrieval and display to the user.

In one aspect, in addition to the simple filter icons, a user mayfurther be able to generate a complex filter icon. A complex filter iconmay include two or more filter criteria. The generation of a complexfilter icon may be desirable where the user desires to apply a set ofrelated filter criteria in several different e-mail filters. Complexfilter icons may be generated in a manner similar to a simple filtericon, with the icon being associated with the two or more filtercriteria and their corresponding definition as specified by the user.

FIG. 3 illustrates a flow diagram of a process 300 for creating anaction icon. In step 302, the system receives a user input of an actionfrom a user of the system. For example, the user may be presented with agraphical user interface for inputting or selecting an action (e.g.,upon the system receiving a selection from the user that the user wishesto create a new action icon or a system determination that a new actionicon should be created). The action selected or inputted by the user mayinclude sending the e-mail message to the user's inbox or other folder,archiving the e-mail message, marking the e-mail message as read,applying a label to the e-mail message, forwarding the e-mail message toanother e-mail address, deleting the e-mail message, marking the e-mailmessage as important, never sending the e-mail message to the spamfolder, never marking the e-mail message as important or other similaractions performable with respect to an e-mail message. In one aspect,the actions are presented to the user within a graphical user interfaceand the user may select the appropriate action (e.g., to label an e-mailmessage).

In step 304, the system generates an action icon (i.e., a visualrepresentation of the action) for the inputted filter criterion. Thevisual representation may comprise a box having text indicating theaction associated with the action icon (e.g., action icon 120). In step306, the system associates the generated action icon with the actionspecified by the user. The generated action icon may be stored within adatabase along with the associated action for later retrieval anddisplay to the user.

In one aspect, an action icon may be associated with more than oneaction. This may be desirable where the user desires that the same setof closely related actions (e.g., label inbox and mark as read) beperformed with respect to e-mail messages being filtered throughdifferent e-mail filters.

FIG. 4 illustrates a flow diagram of a process 400 for generating e-mailfilters according to user selections within a filter visual display(e.g., e-mail filter visual display 100). In step 402, the systemreceives an indication of a selection of a simple filter icon from theuser. For example, the user may select an existing simple filter icon orcreate a new simple filter icon (e.g., according to process 200 of FIG.2) and may drag the simple filter icon into a display area displayingthe filter visual display 100.

In step 404, the system receives an indication of a placement of theselected simple filter icon. The simple filter icon may be placed withrespect to other simple filter icons (e.g., the output of one simplefilter icon may become an input into a second filter icon) to form ane-mail filter. AND operations may be represented by placing two simplefilter icons in a series (e.g., simple filter icons 102, 104 and 106terminating in action icon 120 as illustrated in FIG. 1) and ORoperations may be represented by splitting an output (e.g., an outputfrom the incoming mail, a simple filter or action icon) into multiplesimple filters (e.g., simple filter icon 102, simple filter icon 110 andcombination of simple filter icons 102, 104 and 106 terminating inaction icon 120).

Each simple filter may include an input and output for being linked toother simple filter icons or action icons. Each simple filter mayinclude a value defining its output (e.g., a yes or no). The valuecorresponds to one of filtering an e-mail message meeting the definedfilter criterion associated with the simple filter icon (e.g., a yesvalue or true value) and passing through (not filtering) an e-mailmessage failing the defined filter criterion associated with the simplefilter icon (e.g., a no value or false value). For example, when theuser selects the simple filter icon 102 corresponding to the filteringcriterion that the recipient of an e-mail message is identified as thec_team, the user may assign a “yes” or “true” value to the simple filtericon 102 indicating that e-mail messages sent to the c_team should beoutputted or a “no” or “false” value indicating that e-mail messagessent to the c_team should be filtered (e.g., a no value). The user mayindicate the value for the simple filter icon during step 402 afterselecting the simple filter icon. Alternatively, the indication of valueof the simple filter icon may occur during step 404.

The process 400 may continue to monitor for selection, placement andlinking of simple filter icons within the display area displaying thefilter visual display 100 (steps 402 and 404) until in step 406, thesystem receives an indication of an action icon being placed within thedisplay area displaying the filter visual display 100. An e-mail filterincludes one or more filter criteria and terminates in an action. Thus,upon receiving an indication of the selection of an action icon andplacement of the action association with simple filter icons detected insteps 402 and 404, the system continues to step 408. In step 408, thesystem generates an e-mail filter corresponding to the combination ofthe filter criterion represented by the detected simple filter icons(e.g., detected in steps 402 and 404) according to the detected outputvalue and placement (e.g., in parallel or series) of the simple filtericons. Next, in step 410, the system assigns the action represented bythe action icon detected in step 406, with the generated e-mail filter.In some aspects, similar to simple filter icons, complex filter iconsmay additionally be detected in steps 402 and 404 and included withine-mail filters.

The action icon may include an output, such that the e-mail filter maybe reused by being combined with other filter criteria represented bysimple filter icons to create a second e-mail filter terminating in anew action. Accordingly, the process 400 may be performed with respectto incoming e-mail messages (e.g., representing by incoming icon 130) ore-mail messages output from an action icon (e.g., e-mail messagesalready filtered according to a first e-mail filter).

Once the e-mail filter is generated and associated with the action itmay be stored for processing of e-mail messages. Additionally, in step412, the e-mail filter may be displayed to the user within the filtervisual display 100. While viewing the one or more e-mail filters withinthe filter visual display 100, a user may rearrange, remove or addsimple filter icons or action icons.

FIG. 5 illustrates a flow diagram of a process 500 for editing e-mailfilters being displayed within a filter visual display (e.g., filtervisual display 100). In step 502, the system receives an indication of amodification of an e-mail filter displayed within the filter visualdisplay 100. For example, in step 502 the user may rearrange, remove oradd simple filter icons or action icons associated with the e-mailfilter. Upon detecting the modification, in step 504, the systemidentifies the simple filter icons and the placement of the simplefilter icons, and the action icon assigned to the e-mail filter. Theidentified simple filter icons and action icons include anymodifications made by the user (e.g., rearranging, removing or addingsimple filter icons or action icons). In step 506, the system generatesa modified e-mail filter including the one or more filter criterion (andvalues) associated with the simple filter icons identified in step 504.Next, in step 508, the system assigns the action associated with theaction icon identified in step 504 with the generated modified e-mailfilter.

While the above implementations are described with respect to incominge-mail messages, it should be understood by one skilled in the art, thata visual display of e-mail filters corresponding to searching e-mailmessages or outgoing e-mail messages may similarly be provided to a userof the system accordingly to the features and processes describedthroughout the specification and the figures.

Many of the above-described features and applications are implemented assoftware processes that are specified as a set of instructions recordedon a computer readable storage medium (also referred to as computerreadable medium). When these instructions are executed by one or moreprocessing unit(s) (e.g., one or more processors, cores of processors,or other processing units), they cause the processing unit(s) to performthe actions indicated in the instructions. Examples of computer readablemedia include, but are not limited to, CD-ROMs, flash drives, RAM chips,hard drives, EPROMs, etc. The computer readable media does not includecarrier waves and electronic signals passing wirelessly or over wiredconnections.

In this specification, the term “software” is meant to include firmwareresiding in read-only memory or applications stored in magnetic storage,which can be read into memory for processing by a processor. Also, insome implementations, multiple software aspects of the subjectdisclosure can be implemented as sub-parts of a larger program whileremaining distinct software aspects of the subject disclosure. In someimplementations, multiple software aspects can also be implemented asseparate programs. Finally, any combination of separate programs thattogether implement a software aspect described here is within the scopeof the subject disclosure. In some implementations, the softwareprograms, when installed to operate on one or more electronic systems,define one or more specific machine implementations that execute andperform the operations of the software programs.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

FIG. 6 conceptually illustrates an electronic system with which someimplementations of the subject technology are implemented. Electronicsystem 600 can be a computer, phone, PDA, or any other sort ofelectronic device. Such an electronic system includes various types ofcomputer readable media and interfaces for various other types ofcomputer readable media. Electronic system 600 includes a bus 608,processing unit(s) 612, a system memory 604, a read-only memory (ROM)610, a permanent storage device 602, an input device interface 614, anoutput device interface 606, and a network interface 616.

Bus 608 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices ofelectronic system 600. For instance, bus 608 communicatively connectsprocessing unit(s) 612 with ROM 610, system memory 604, and permanentstorage device 602.

From these various memory units, processing unit(s) 612 retrievesinstructions to execute and data to process in order to execute theprocesses of the subject disclosure. The processing unit(s) can be asingle processor or a multi-core processor in different implementations.

ROM 610 stores static data and instructions that are needed byprocessing unit(s) 612 and other modules of the electronic system.Permanent storage device 602, on the other hand, is a read-and-writememory device. This device is a non-volatile memory unit that storesinstructions and data even when electronic system 600 is off. Someimplementations of the subject disclosure use a mass-storage device(such as a magnetic or optical disk and its corresponding disk drive) aspermanent storage device 602.

Other implementations use a removable storage device (such as a floppydisk, flash drive, and its corresponding disk drive) as permanentstorage device 602. Like permanent storage device 602, system memory 604is a read-and-write memory device. However, unlike storage device 602,system memory 604 is a volatile read-and-write memory, such a randomaccess memory. System memory 604 stores some of the instructions anddata that the processor needs at runtime. In some implementations, theprocesses of the subject disclosure are stored in system memory 604,permanent storage device 602, and/or ROM 610. For example, the variousmemory units include instructions for processing multimedia items inaccordance with some implementations. From these various memory units,processing unit(s) 612 retrieves instructions to execute and data toprocess in order to execute the processes of some implementations.

Bus 608 also connects to input and output device interfaces 614 and 606.Input device interface 614 enables the user to communicate informationand select commands to the electronic system. Input devices used withinput device interface 614 include, for example, alphanumeric keyboardsand pointing devices (also called “cursor control devices”). Outputdevice interfaces 606 enables, for example, the display of imagesgenerated by the electronic system 600. Output devices used with outputdevice interface 606 include, for example, printers and display devices,such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Someimplementations include devices such as a touchscreen that functions asboth input and output devices.

Finally, as shown in FIG. 6, bus 608 also couples electronic system 600to a network (not shown) through a network interface 616. In thismanner, the computer can be a part of a network of computers (such as alocal area network (“LAN”), a wide area network (“WAN”), or an Intranet,or a network of networks, such as the Internet. Any or all components ofelectronic system 600 can be used in conjunction with the subjectdisclosure.

These functions described above can be implemented in digital electroniccircuitry, in computer software, firmware or hardware. The techniquescan be implemented using one or more computer program products.Programmable processors and computers can be included in or packaged asmobile devices. The processes and logic flows can be performed by one ormore programmable processors and by one or more programmable logiccircuitry. General and special purpose computing devices and storagedevices can be interconnected through communication networks.

Some implementations include electronic components, such asmicroprocessors, storage and memory that store computer programinstructions in a machine-readable or computer-readable medium(alternatively referred to as computer-readable storage media,machine-readable media, or machine-readable storage media). Someexamples of such computer-readable media include RAM, ROM, read-onlycompact discs (CD-ROM), recordable compact discs (CD-R), rewritablecompact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM,dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g.,DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SDcards, micro-SD cards, etc.), magnetic and/or solid state hard drives,read-only and recordable Blu-Ray® discs, ultra density optical discs,any other optical or magnetic media, and floppy disks. Thecomputer-readable media can store a computer program that is executableby at least one processing unit and includes sets of instructions forperforming various operations. Examples of computer programs or computercode include machine code, such as is produced by a compiler, and filesincluding higher-level code that are executed by a computer, anelectronic component, or a microprocessor using an interpreter.

While the above discussion primarily refers to microprocessor ormulti-core processors that execute software, some implementations areperformed by one or more integrated circuits, such as applicationspecific integrated circuits (ASICs) or field programmable gate arrays(FPGAs). In some implementations, such integrated circuits executeinstructions that are stored on the circuit itself.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For the purposes of the specification, the termsdisplay or displaying means displaying on an electronic device. As usedin this specification and any claims of this application, the terms“computer readable medium” and “computer readable media” are entirelyrestricted to tangible, physical objects that store information in aform that is readable by a computer. These terms exclude any wirelesssignals, wired download signals, and any other ephemeral signals.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described in this specification, or any combination of one ormore such back end, middleware, or front end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits data (e.g., an HTML page) to a clientdevice (e.g., for purposes of displaying data to and receiving userinput from a user interacting with the client device). Data generated atthe client device (e.g., a result of the user interaction) can bereceived from the client device at the server.

It is understood that any specific order or hierarchy of steps in theprocesses disclosed is an illustration of exemplary approaches. Basedupon design preferences, it is understood that the specific order orhierarchy of steps in the processes may be rearranged, or that allillustrated steps be performed. Some of the steps may be performedsimultaneously. For example, in certain circumstances, multitasking andparallel processing may be advantageous. Moreover, the separation ofvarious system components in the embodiments described above should notbe understood as requiring such separation in all embodiments, and itshould be understood that the described program components and systemscan generally be integrated together in a single software product orpackaged into multiple software products.

The previous description is provided to enable any person skilled in theart to practice the various aspects described herein. Variousmodifications to these aspects will be readily apparent to those skilledin the art, and the generic principles defined herein may be applied toother aspects. Thus, the claims are not intended to be limited to theaspects shown herein, but are to be accorded the full scope consistentwith the language claims, wherein reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. Pronouns in themasculine (e.g., his) include the feminine and neuter gender (e.g., herand its) and vice versa. Headings and subheadings, if any, are used forconvenience only and do not limit the subject disclosure.

A phrase such as an “aspect” does not imply that such aspect isessential to the subject technology or that such aspect applies to allconfigurations of the subject technology. A disclosure relating to anaspect may apply to all configurations, or one or more configurations. Aphrase such as an aspect may refer to one or more aspects and viceversa. A phrase such as a “configuration” does not imply that suchconfiguration is essential to the subject technology or that suchconfiguration applies to all configurations of the subject technology. Adisclosure relating to a configuration may apply to all configurations,or one or more configurations. A phrase such as a configuration mayrefer to one or more configurations and vice versa.

The word “exemplary” is used herein to mean “serving as an example orillustration.” Any aspect or design described herein as “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs.

All structural and functional equivalents to the elements of the variousaspects described throughout this disclosure that are known or latercome to be known to those of ordinary skill in the art are expresslyincorporated herein by reference and are intended to be encompassed bythe claims. Moreover, nothing disclosed herein is intended to bededicated to the public regardless of whether such disclosure isexplicitly recited in the claims.

What is claimed is:
 1. A method for generating an e-mail filter using afilter visual display, the method comprising: receiving an indication ofa selection of a first simple filter icon, wherein the first simplefilter icon represents a first filter criterion; receiving an indicationof a placement of the first simple filter icon within a display area,wherein the display area displays a filter visual display comprising avisual representation of a collection of e-mail filters corresponding tothe user; receiving an indication of a selection of a first action icon,wherein the first action icon represents a first action to be performedwith respect to an e-mail message; receiving an indication of aplacement of the first action icon within the filter display area withrespect to the first simple filter icon, wherein the placement of thefirst action icon with respect to the first simple filter iconrepresents a connection of the first action icon with the first simplefilter icon; identifying a value assigned to the first simple filtericon, wherein the value defines the output of the first simple filtericon as one of an e-mail message satisfying the first filter criterionor an e-mail message failing the first filter criterion; generating afirst e-mail filter comprising one or more filter criteria including thefirst filter criterion in response to receiving the indication of theplacement of the first action icon, wherein the generating the firste-mail filter comprises generating the first e-mail filter based atleast in part on the value assigned to the first simple filter icon; andassigning the first action to the first e-mail filter.
 2. The method ofclaim 1, further comprising: providing the first e-mail filter fordisplay within the display area, wherein the displaying the first e-mailfilter comprises displaying the first simple filter icon, the firstaction icon, a visual representation of the connection between the firstsimple filter and the first action icon, and a visual representation ofthe value assigned to the first simple filter icon.
 3. The method ofclaim 1, further comprising: receiving an indication of a selection of asecond simple filter icon by the user, the second simple filterrepresenting a second filter criterion; and receiving an indication of aplacement of the second simple filter icon with respect to the firstsimple filter icon within the visual display area, wherein the placementof the second simple filter icon with respect to the first simple filtericon represents a connection between the first simple filter icon andthe second simple filter icon, the connection representing one of an ANDoperation and an OR operation between the first filter criterion and thesecond filter criterion; wherein the generating the first e-mail filtercomprises generating the first e-mail filter according to the connectionbetween the first simple filter icon and second simple filter icon, andwherein the filter criteria includes the second filter criterion.
 4. Themethod of claim 3, wherein the placement of the second filter icon withrespect to the first icon in a series represents the connectioncorresponding to the AND operation.
 5. The method of claim 3, whereinthe placement of the second filter icon with respect to the first iconin parallel represents the connection corresponding to the OR operation.6. The method of claim 1, further comprising: receiving an indication ofa selection of a second simple filter icon; receiving an indication of aplacement of the second simple filter icon with respect to the firstaction icon within the display area, wherein the placement of the secondsimple filter icon with respect to the first action icon represents aconnection between the first e-mail filter and the second simple filtericon; receiving an indication of a selection of a second action iconrepresenting a second action to be performed with respect to the e-mailmessage; receiving an indication of a placement of the second actionicon within the display area with respect to the second simple filtericon, wherein the placement of the second action icon with respect tosecond simple filter icon represents a connection of the second actionicon with the first e-mail filter and the second simple filter icon; andgenerating a second e-mail filter including filter criteria associatedwith the first e-mail filter and a second filter criterion associatedwith the second simple filter icon, in response to receiving theindication of the selection and placement of the second action icon; andassigning the second action to the second e-mail filter.
 7. The methodof claim 1, further comprising: receiving a request to generate thefirst simple filter icon; receiving a selection of a filter criterionidentifier and a definition for the first filter criterion identifierfrom the user; generating the first simple filter icon in response tothe request, wherein the first filter criterion comprises the selectedfilter criterion identifier and the definition.
 8. The method of claim1, further comprising: receiving a request to generate the first actionicon; receiving a selection of the first action from the user;generating the first action icon in response to the request; andassociating the first action with the first action icon.
 9. The methodof claim 1, wherein the collection of e-mail filters comprises one ormore e-mail filters including the first e-mail filter, each of the oneor more e-mail filters including at least one filter criterion and anaction, wherein the at least one filter criterion and action areassociated according to a connection.
 10. The method of claim 9, whereinthe filter visual display comprises one or more simple filter iconsrepresenting filter criteria and one or more action icons representingactions corresponding to the one or more e-mail filters displayed basedon the connection between the simple filter icons and action icons foreach e-mail filter.
 11. The method of claim 9, further comprising:receiving a selection of the e-mail message processed through the firste-mail filter; displaying the first simple filter icon, such that thefirst simple filter icon is displayed having a visually distinctivecharacteristic.
 12. The method of claim 1, further comprising: receivingan indication of a modification of the first e-mail filter, wherein themodification comprises at least one of rearranging the placement of oneof the first simple filter icon and the first action icon, removing oneof the first simple filter icon and the first action icon or adding asecond simple filter icon or a second action icon; and generating amodified e-mail filter based on the received modification.
 13. Themethod of claim 12, wherein the modification comprises removing thefirst action icon and adding the second action icon, and whereingenerating the modified e-mail filter comprises associating the actioncorresponding to the second action icon to the modified e-mail filter.14. The method of claim 1, wherein the first filter criterion comprisesone of a recipient of the e-mail message, a destination of the e-mailmessage, a subject of the e-mail message, a content of the e-mailmessage and a determination of whether the e-mail message has anattachment.
 15. The method of claim 1, wherein the first actioncomprises one of sending the e-mail message to an inbox or other folder,archiving the e-mail message, marking the e-mail message as read,applying a label to the e-mail message, forwarding the e-mail message toanother e-mail address, deleting the e-mail message, marking the e-mailmessage as important, refraining from sending the e-mail message to thespam folder and refraining from marking the e-mail message as important.16. A system for generating and displaying an e-mail filter using afilter visual display, the system comprising: one or more processors;and a machine-readable medium comprising instructions stored therein,which when executed by the processors, cause the processors to performoperations comprising: receiving an indication of a selection of asimple filter icon by a user, wherein the simple filter icon representsa filter criterion and further includes a value assigned by the user;receiving an indication of a placement of a filter icon within a displayarea displaying by a user, wherein the value corresponds to one of ane-mail message being filtered if the e-mail message satisfies the one ormore filter criteria or the e-mail message being filtered if the e-mailmessage fails the one or more filter criteria, the display areadisplaying a filter visual display comprising a visual representation ofa collection of e-mail filters corresponding to the user; receiving anindication of a placement of an action icon within the display area,wherein the action icon represents an action to be performed withrespect to the e-mail message; generating an e-mail filter based on theone or more filter criteria and the value, in response to receiving theindication of the placement of the action icon; assigning the actionrepresented by the action icon to the e-mail filter; and providing thee-mail filter to be displayed within the display area, the displayede-mail filter including the filter icon, a visual representation of thevalue, the action icon and a visual representation of the connectionbetween the filter icon and the action icon.
 17. The system of claim 16,wherein the filter icon comprises a simple filter icon representing asingle filter criterion.
 18. The system of claim 16, wherein the filtericon comprises a complex filter icon representing a combination of twoor more filter criteria.
 19. A machine-readable medium comprisinginstructions stored therein, which when executed by a machine, cause themachine to perform operations comprising: receiving an indication of aselection of a simple filter icon by a user, wherein the simple filtericon represents a filter criterion and further includes a value assignedby the user, wherein the value defines the output of the simple filtericon including one of an e-mail message satisfying the first filtercriterion or an e-mail message failing the first filter criterion;receiving an indication of a placement of the simple filter icon withina display area, the display area displaying a filter visual displaycomprising a visual representation of a collection of e-mail filterscorresponding to the user; receiving an indication of a placement of anaction icon within the display area, wherein the action icon representsan action to be performed with respect to the e-mail message; generatingan e-mail filter based on at least the filter criterion and the value inresponse to receiving the indication of the placement of the actionicon; and assigning the action to the e-mail filter, wherein the e-mailfilter is displayed within the display area including the simple filtericon, a visual representation of the value, the action icon, and avisual representation of the connection between the simple filter iconand the action icon.